A typical computer application 80 includes a user interface (UI) 82, business logic components 84, and data 86, as shown in FIG. 1. Computer application 80 may be either a traditional client/server application, such as a Microsoft Windows-based application, that runs on a computer equipped with a specific operating system or an HTML web-based application that runs over a network. A Microsoft Windows-based application provides a rich responsive user interface that can be installed in any computer that runs on the Windows operating system and can run offline without the need for a network connection. The Windows-based application is interactive, provides complex functionality and uses real-time operations. A programmer writes an application source code (or business logic code) using C or C# programming language, compiles it for the Windows operating system and installs the compiled bytecode in each computer individually. This deployment mode is time consuming and lacks flexibility because the process of writing, compiling and deploying needs to be repeated every time there is a change in the source code. Furthermore, a Windows-based application cannot run within a web browser.
A web-based application is usually installed in a server 72 (shown in FIG. 3) and includes webpages written in a markup language, such as HTML. A web browser installed in a client computer 73 can download the web application one webpage at a time via a network connection 78 between the client machine 73 and the server 72. Web-based applications are easy to deploy via the network 78 and the UI is easily created using a declarative markup language, such as HTML. However, the UI controls of an HTML-based application are not as rich as the UI controls of a Windows based application, therefore resulting in poor interactivity with the user. Furthermore, web-based applications cannot run offline on a stand-alone client computer without a network connection to a server, have high bandwidth consumption and do not support bi-directional communications.
A next generation Windows operating system called Longhorn is being developed by the Microsoft Corporation. Referring to FIG. 2, a prior art system 90 for writing and deploying a computer application 80 in the next generation Windows Longhorn environment includes coding a markup document 92, coding a business logic code 94, combining document 92 and code 94 into one entity 95 and compiling the combined entity 95 into an executable bytecode 98 using a compiler 96. The executable bytecode 98 is installed in a client machine where it gets executed by an execution engine 99 in the client runtime environment (CRE). The markup document 92 is written using a declarative Extensible Application Markup Language (XAML) language and the business logic code 94 is written in C#. The compiler 96 is a .NET CLR compiler and the executable bytecode 98 is a .NET CLR bytecode. The execution engine 99 is a .NET CLR engine with Longhorn services. The business logic code 94 may also be written using Visual Basic™ .NET, JScript™ .NET, or other .NET-compatible languages. This process of writing, compiling and deploying needs to be repeated every time there is a change either in the markup document code 92 or in the business logic code 94. Furthermore, the process is currently available only for the .NET CLR execution engine with Longhorn services 99 and for the particular combination of XAML markup language for the markup document 92 and the .NET compatible languages for the business logic code 94. The Longhorn environment and the process of writing and deploying applications within this environment are described in an article entitled “A first look at writing and deploying applications in the next generation of windows” by Dino Espsosito published in the MSDN magazine, the contents of which are expressly incorporated herein by reference.
As was mentioned above, this prior art system and method of writing, compiling and deploying computer applications in the next generation of Windows environment is not flexible because the compiled bytecode of the combined business logic component and the markup document needs to be recompiled and reinstalled every time there is a change either in the business logic component or in the markup document. The entire application needs to be re-deployed. The XAML documents cannot be modified or generated at runtime, which significantly limits programming flexibility. Furthermore this type of computer applications can only run in the specific next generation Windows environment and are not compatible with other existing operating systems including the current version of Windows 95/98/2000/ME/XP, Linux, Unix™, Macintosh™ or Palm™ operating systems, among others. The footprint of the compiled bytecode of the combined business logic component and the markup document can be very large (“fat client”), which in turn results in network bandwidth limitations and server or client machine storage limitations.
Accordingly, there is a need for system and a method of developing and deploying web-based computer applications that can run in any type of client environment and in any operating system, online or offline and can be modified on the fly. Furthermore, there is a need for a system and a method of deploying Longhorn applications and other prior art existing applications to other client environments, thereby overcoming the Longhorn inflexibility and the limited functionality of the prior art environments.